package org.fh.hce06.impferinnerung.dal.jdbcOracle;

import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Collection;

import org.fh.hce06.impferinnerung.dal.ImpfaktionDal;
import org.fh.hce06.impferinnerung.model.Impfaktion;

public class ImpfaktionDalJdbcOracle extends BaseDal implements ImpfaktionDal{

	public ImpfaktionDalJdbcOracle(DbConnection dbConnection) {
		super(dbConnection);
	}

	public void delete(int impfaktion_id) {
		// TODO Automatisch erstellter Methoden-Stub
		
	}

	public Collection<Impfaktion> getAllByPatientId(int patientId) {
		// TODO Automatisch erstellter Methoden-Stub
		return null;
	}

	public Impfaktion load(int impfaktion_id) {

		Impfaktion impfaktion = new Impfaktion();

		String query = "SELECT impfaktion_id, krankheit, impfart, impfdatum, titel, arztvorname, "
				+ "arztname, reaktion, reaktiondatum, anmerkungen, folgetermin, "
				+ "patienten_id FROM view_impfaktionen WHERE impfaktion_id = "
				+ impfaktion_id;

		ResultSet rs = dbConnection.executeQuery(query);

		try {

			while (rs.next()) {
				impfaktion.setImpfaktions_id(rs.getInt("impfaktion_id"));
				impfaktion.setKrankheit(rs.getString("krankheit"));
				impfaktion.setImpfart(rs.getString("impfart"));
				impfaktion.setImpfdatum(rs.getDate("impfdatum"));
				impfaktion.setTitel(rs.getString("titel"));
				impfaktion.setArzt_vorname(rs.getString("arztvorname"));
				impfaktion.setArzt_name(rs.getString("arztname"));
				impfaktion.setAnmerkungen(rs.getString("anmerkungen"));
				impfaktion.setReaktion(rs.getString("reaktion"));
				impfaktion.setReaktion_datum(rs.getDate("reaktiondatum"));
				impfaktion.setFolgetermin(rs.getInt("folgetermin"));
				impfaktion.setPatienten_id(rs.getInt("patienten_id"));
			}

		} catch (Exception e) {
			System.err.println(e);
		}

		return impfaktion;
	}

	public void insert(int patienten_id, int arzt_id, int impfplan_id, java.util.Date impfdatum, String anmerkungen) {
		
	     String query =
	          "INSERT INTO impfaktionen" +
	          "(impfaktions_id, patienten_id, arzt_id,impfplan_id,impfdatum, " +
	          "anmerkungen)" +
	          "VALUES(seq_impfaktions_id.NEXTVAL,?,?,?,?,?)";
	    
	     
	     try {
			PreparedStatement stmt = dbConnection.getCon().prepareStatement(query);
			stmt.setInt(1, patienten_id);
			stmt.setInt(2, arzt_id);
			stmt.setInt(3, impfplan_id);
			stmt.setDate(4,  new Date(impfdatum.getTime()));
			stmt.setString(5, anmerkungen);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		
	}

	
	
	
}
